﻿using System;
using Asplode.GameEntity.Weapons;
using FlyingGamePC.GameEntity.Weapons;
using Microsoft.Xna.Framework;

namespace Asplode.GameEntity.Characters
{
    public abstract class Character
    {
        // Static members
        public enum Team { NO_TEAM, HUMANS, ZOMBIES };

        public virtual float startingHealth
        {
            get
            {
                return 100.0f;
            }
        }

        // Object members
        public bool isShooting;
        public float rotation;
        public Team team;
        public GameObject gameObject;
        public Weapon weapon;
        public float health;
        public int kills;
        public int deaths;

        public Character(GameObject gameObject)
        {
            this.gameObject = gameObject;
            team = Team.NO_TEAM;
            isShooting = false;
            rotation = 0.0f;
            weapon = new Unarmed();
            health = startingHealth;
            kills = 0;
            deaths = 0;
        }

        public Vector3 rotationVector
        {
            get
            {
                return new Vector3((float)Math.Cos(rotation), 0, -(float)Math.Sin(rotation));
            }
        }
    }
}
